package model

// NewInfo 创建并初始化一个Info实例。
// Info实例用于配置和存储线程数量、URL信息、调试状态和保存标志等参数。
// 返回一个指向Info实例的指针。
func NewInfo() *Info {
	// 创建一个新的Info实例
	u := new(Info)

	// 设置线程数量为5
	u.ThreadNum = 5

	// 创建一个新的UrlInfo实例，并设置块大小为1MB
	u.Url = new(UrlInfo)
	u.Url.BlockSize = 1024 * 1024

	// 初始化调试和保存标志为false
	u.Debug = false
	u.Save = false

	// 初始化URL数量为0
	u.UrlNum = 0
	u.Url.FileSizeMb = 0

	// 初始化内存监控器（默认最大内存2GB）
	u.MemoryMon = NewMemoryMonitor(2048)

	// 返回初始化后的Info实例指针
	return u
}
